package com.catmiao.spark.rdd.operator.action

import org.apache.spark.{SparkConf, SparkContext}

/**
 * @title: RDD_Operator_01_action
 * @projectName spark_study
 * @description: TODO
 * @author ChengMiao
 * @date 2024/2/22 22:47
 */
object RDD_Operator_06_action {

  def main(args: Array[String]): Unit = {
    val sparkCon = new SparkConf().setMaster("local[*]").setAppName("rdd")

    val sparkContext = new SparkContext(sparkCon)

    //    val rdd = sparkContext.makeRDD(List(1,2,3,4),2)
    val rdd = sparkContext.makeRDD(List(
     1,2,3,4
    ))


    // 在driver的内存中打印
    rdd.collect().foreach(println)
    println("********************")
    // 在executor端打印
    rdd.foreach(println)


    /**
     * 算子：Operator操作
     *    RDD的方法和Scala集合对象的方法不一样
     *    集合对象的方法都是在同一个节点的内存中完成的
     *    RDD的方法可以将计算逻辑发送到Executor端【分布式节点进行】
     */


    sparkContext.stop()

  }

}
